home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOpus Plus
/
DOpus Plus.iso
/
Tutorial
/
C Guide
/
Average_Module1
/
includes
/
DOExchange.h
< prev
next >
Wrap
C/C++ Source or Header
|
1998-09-16
|
3KB
|
136 lines
/*******************************************************************
DOExchange.h
*********************************************************************/
#include "includes/Project.h"
#define CONFIG_FILE "DOpus5:Settings/DOExchange.prefs"
/********************************************************************/
// some defines for IPC_Commands
// our template was
// "Hide/S,Show/S,BGC=BackgroundColour/N,TC=TextColour/N,N=NewName/K,Quit/S"
#define IPCCMD_HIDE 1 << 0
#define IPCCMD_SHOW 1 << 1
#define IPCCMD_BGC 1 << 2
#define IPCCMD_TC 1 << 3
#define IPCCMD_NAME 1 << 4
#define IPCCMD_QUIT 1 << 5
#define ARG_BGC fargs->FA_Arguments[2]
#define ARG_TC fargs->FA_Arguments[3]
#define ARG_NAME fargs->FA_Arguments[4]
#define POPID_SAVE 0xFFF0
#define POPID_QUIT 0xFFF1
#define CXID_USER 100
/********************************************************************/
// some structures
// since the Amiga developers did mean noone else should do an
// Exchange program, the next both structures are the results of some
// experiments and may (does) not match the real structures,
// but I think I've got what I need :)
// a kind of CxMsg
typedef struct
{
struct Message msg; // ln_Type should be NT_MESSAGE
ULONG a;
ULONG ID; // message id
UBYTE c;
UBYTE d;
UBYTE Code; // message type
} FakeMsg;
// a kind of CxObj
typedef struct
{
char dummy1[14];
UBYTE flags;
char dummy2[125];
struct MsgPort *cx_port;
} CX_OBJ;
// and now back to "normal" stuctures
typedef struct _SubMenu_Node
{
struct MinNode minnode;
struct MinList submenu;
} SubMenu_Node;
typedef struct _DOE_Data
{
ULONG a4;
struct Library *module;
struct Library *library;
IPCData *ipc;
APTR messages;
APTR notify_handle;
struct MsgPort *notify_port;
struct Screen *screen;
struct NewBroker nb;
struct MsgPort *sender;
FakeMsg *fmsg;
PopUpMenu popmenu;
PopUpItem *popitem;
PopUpItem *compare;
struct MinList submenus;
SubMenu_Node *submenu_node;
struct Node *ptr_node;
ULONG entry_count;
ULONG signals;
BOOL stop;
USHORT flags;
CxObj *our_cxobj;
CxObj *filter;
CxObj *new_obj;
struct Window *win;
WindowID id;
struct IBox ibox;
struct IntuiText itext;
char name[16];
} DOE_Data;
typedef struct _PassData
{
UBYTE FrontPen;
UBYTE BackPen;
STRPTR name;
} PassData;
struct Gadget draggadget =
{
NULL,
0, 0, 0, 0,
GFLG_GADGHNONE | GFLG_RELWIDTH | GFLG_RELHEIGHT,
GACT_RELVERIFY, GTYP_WDRAGGING,
NULL, NULL, NULL, NULL,
NULL, NULL, NULL
};
void DOExchange( STRPTR args, struct Screen *screen, IPCData *ipc );